package com.crm.api.service;

import com.crm.api.entity.Customer;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;
import java.util.Map;

/**
 * 客户服务接口
 */
public interface CustomerService {

    /**
     * 获取客户列表（支持分页和筛选）
     */
    Map<String, Object> getCustomers(Integer page, Integer size, String companyName, 
                                   String contactPerson, String customerLevel, 
                                   String industry, String customerSource, Boolean isActive);

    /**
     * 根据ID获取客户详情
     */
    Customer getCustomerById(Integer id);

    /**
     * 创建客户
     */
    Customer createCustomer(Customer customer, String creatorUsername);

    /**
     * 更新客户
     */
    Customer updateCustomer(Customer customer);

    /**
     * 删除客户
     */
    boolean deleteCustomer(Integer id);

    /**
     * 批量删除客户
     */
    Map<String, Object> batchDeleteCustomers(List<Integer> ids);


    /**
     * 获取客户统计信息
     */
    Map<String, Object> getCustomerStats();

    /**
     * 检查公司名称是否已存在
     */
    boolean existsByCompanyName(String companyName);

    /**
     * 检查公司名称是否已被其他记录使用
     */
    boolean existsByCompanyNameAndNotId(String companyName, Integer id);

    /**
     * 检查是否有关联的业务
     */
    boolean hasRelatedBusinesses(Integer id);

    /**
     * 检查是否有关联的工单
     */
    boolean hasRelatedWorkOrders(Integer id);
}